# include"lss_function.h"

void clearBit(int32_t &num, int position) {
    // 创建掩码: 1 左移 position 位
    int mask = 1 << position;
    
    // 取反掩码，使得第 position 位是 0，其余位是 1
    mask = ~mask;
    
    // 使用按位与操作将第 position 位设置为 0
    num &= mask;
}

void setBit(int32_t& num, int position) {
    // 通过左移 1 到目标位置，得到掩码
    num |= (1 << position);
}

void printBinary(int32_t num) {
    // 使用 bitset 输出二进制，默认输出 32 位
    std::bitset<32> b(num); 
    std::cout << b << std::endl;
}


void printBinaryWithSpaces(int32_t num) {
    for (int i = 31; i >= 0; --i) {
        std::cout << ((num >> i) & 1);
        if (i % 4 == 0) {  // 每四位后加一个空格
            std::cout << " ";
        }
    }
    std::cout << std::endl;
}